package com.hutra.bitmap {
	
	/**
	 * IMovieBitmap Interface
	 * @author hunglx
	 */
	public interface IMovieBitmap {
		/**
		 * Sets the frame rate timer object used for the animated
		 * display object. This method is useful when it is desired
		 * to change the framerate at a later timer.
		 *
		 * @param timer The frame rate timer used for the animated
		 *         display object.
		 */
		function setFrameRateTimer(timer:EnterFrame):void;
		
		/**
		 * Returns the frame rate with that the animated display object
		 * is playing.
		 *
		 * @return The fps value of the animated display object.
		 */
		function getFrameRate():int;
		/**
		 * Returns the current frame position of the animated display
		 * object.
		 *
		 * @return The current frame position.
		 */
		function getCurrentFrame():int;
		
		/**
		 * Returns the total amount of frames that the animated display
		 * object has.
		 *
		 * @return The total frame amount.
		 */
		function getTotalFrames():int;
		
		/**
		 * Returns whether the animated display object is playing or not.
		 *
		 * @return true if the animated display object is playing, else false.
		 */
		function isPlaying():Boolean;
		
		/**
		 * Starts the playback of the animated display object. If the animated
		 * display object is already playing while calling this method, it calls
		 * stop() and then play again instantly to allow for framerate
		 * changes during playback.
		 */
		function play():void;
		
		/**
		 * Stops the playback of the animated display object.
		 */
		function stop():void;
		
		/**
		 * Jumps to the specified frameNr and plays the animated
		 * display object from that position. Note that the frames of an
		 * animated display object start at 1.
		 *
		 * @param frameNr The frame number to which to jump.
		 */
		function gotoAndPlay(frameNr:int):void;
		
		/**
		 * Jumps to the specified frameNr and stops the animated
		 * display object at that position. Note that the frames of an
		 * animated display object start at 1.
		 *
		 * @param frameNr The frame number to which to jump.
		 */
		function gotoAndStop(frameNr:int):void;
		
		/**
		 * Moves the animation to the next of the current frame.
		 * If the animated display object is playing, the playback is
		 * stopped by this operation.
		 */
		function nextFrame():void;
		
		/**
		 * Moves the animation to the previous of the current frame.
		 * If the animated display object is playing, the playback is
		 * stopped by this operation.
		 */
		function prevFrame():void;
	}
}
